package headfirst.proxy.aop.first;

/**
 *    其实AOP的意思就是面向切面编程。
 *    OO注重的是我们解决问题的方法(封装成Method)，而AOP注重的是解决许多问题的方法中的共同点，是对OO思想的一种补充！
 *    还是拿人家经常举的一个例子讲解一下吧：比如说，我们现在要开发的一个应用里面有很多的业务方法，
 *    但是，我们现在要对这个方法的执行做全面监控,或部分监控。也许我们就会在要一些方法前去加上一条日志记录，
 *    这个例子是最简单的解决方案。
 */

//其实这个基本实现了AOP，只要是IHello接口被实现的就都是在执行sayHello的时候打印出log
//这个有点像装饰者模式，也有点像代理模式的虚拟代理。